package day45;

// 查找兄弟单词
// 兄弟单词要求和原来单词不同

import java.util.*;

public class Main2 {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        while (in.hasNext()) {
            String str = in.nextLine();
            // 使用空格分割：单词个数n n个单词 单词x 整数k（后面用于寻找字典序后的第k个兄弟单词）
            String[] chars = str.split(" ");
            int n = Integer.parseInt(chars[0]);
            int k = Integer.parseInt(chars[chars.length-1]);
            String x = chars[chars.length-2];
            // 遍历判断相等
            // String[] flags = new String[1000]; // 保存兄弟单词,但是后期String数组不好进行字典排序，所以使用List

            List<String> flags = new ArrayList<>();
            int count = 0;
            for (int i = 1; i < 1+n; i++) {
                // 进行简单归并，并且注意两个都要排序后进行相等比较就行
                if(chars[i].equals(x) || chars[i].length()!=x.length()) {
                    continue;
                }
                // 说明进行排序后比较
                char[] ch = chars[i].toCharArray();
                char[] chX = x.toCharArray();
                Arrays.sort(ch);
                Arrays.sort(chX);
                // 转为String判断相等
                if (new String(ch).equals(new String(chX))) {
                    count++; // 可以不是用count计数，后面直接使用flags.size()
                    flags.add(chars[i]);
                }

//                if (chars[i].equals(x)) {
//                    continue;
//                }
//                // 这里说明不相等
//                char[] tmp = chars[i].toCharArray();
//                // 要进行长度的判断
//                if(tmp.length == x.length()) {
//                    Arrays.sort(tmp); // 进行了排序
//                    //
//                    if (chars[i].equals(x)) {
//                        // flags[count] = chars[i];
//
//                        flags.add(chars[i]);
//                        count++;
//                    }
//                } else {
//                    // 长度不相等
//                    continue;
//                }
            }
            System.out.println(count);
            // 字典序 + 输出兄弟单词
//             Arrays.sort(flags);
//            if(flags[k-1] != null) {
//                System.out.println(flags[k-1]);
//            }

            // List的字典序
            if(count >= k) { // 才有排序的必要
                Collections.sort(flags);
                System.out.println(flags.get(k-1));
            }
        }
    }
}
